// Copyright (c) MatrixFramework. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.

namespace MatrixFramework.Photos.Domain.Shared.Constants;

/// <summary>
/// 照片相关常量
/// </summary>
public static class PhotoConstants
{
    /// <summary>
    /// 支持的图片格式
    /// </summary>
    public static readonly string[] SupportedImageFormats =
    {
        ".jpg", ".jpeg", ".png", ".gif", ".bmp", ".tiff", ".webp"
    };

    /// <summary>
    /// 支持的视频格式
    /// </summary>
    public static readonly string[] SupportedVideoFormats =
    {
        ".mp4", ".avi", ".mov", ".wmv", ".flv", ".mkv", ".webm"
    };

    /// <summary>
    /// 支持的RAW格式
    /// </summary>
    public static readonly string[] SupportedRawFormats =
    {
        ".raw", ".cr2", ".nef", ".arw", ".dng", ".orf", ".rw2"
    };

    /// <summary>
    /// 最大文件大小 (100MB)
    /// </summary>
    public const long MaxFileSizeBytes = 100 * 1024 * 1024;

    /// <summary>
    /// 最大文件大小显示字符串
    /// </summary>
    public const string MaxFileSizeDisplay = "100MB";

    /// <summary>
    /// 缩略图尺寸
    /// </summary>
    public static class ThumbnailSizes
    {
        public const int Small = 150;
        public const int Medium = 300;
        public const int Large = 800;
    }

    /// <summary>
    /// 默认压缩质量
    /// </summary>
    public const int DefaultCompressionQuality = 85;

    /// <summary>
    /// 照片哈希算法
    /// </summary>
    public const string HashAlgorithm = "SHA256";
}